package io.renren.modules.order.dto;

import io.renren.modules.customer.dto.CustomerInfoDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.SchemaProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单表
 *
 * @author Mark sunlightcs@gmail.com
 * @since 1.0.0 2024-12-07
 */
@Data
@Schema(name = "订单表")
public class OrderDTO implements Serializable {
    private static final long serialVersionUID = 1L;

	@SchemaProperty(name = "id")
	private Long id;

	@SchemaProperty(name = "订单编号")
	private String orderCode;

	@SchemaProperty(name = "客户ID")
	private Long customerId;

	@SchemaProperty(name = "客户信息详情")
	private CustomerInfoDTO customerInfoDto;

	@SchemaProperty(name = "服务项目")
	private String serviceItem;

	@SchemaProperty(name = "订单总金额")
	private BigDecimal totalAmount;

	@SchemaProperty(name = "订单成本")
	private BigDecimal costAmount;

	@SchemaProperty(name = "已支付金额合计")
	private BigDecimal totalPayAmount;

	@SchemaProperty(name = "未支付金额合计")
	private BigDecimal totalUnPayAmount;

	@SchemaProperty(name = "介绍人")
	private String introducer;

	@SchemaProperty(name = "介绍人电话")
	private String introducerPhone;

	@SchemaProperty(name = "订单状态   0：未完结 1：已完结")
	private Integer orderStatus;

	@SchemaProperty(name = "合同状态   0：未签合同 1：已签合同")
	private Integer orderContractStatus;

	@SchemaProperty(name = "报价图片存储路径")
	private String amountImagePath;

	@SchemaProperty(name = "完结时间")
	private Date finishDate;

	@SchemaProperty(name = "创建者")
	private Long creator;

	@SchemaProperty(name = "创建者")
	private String creatorName;

	@SchemaProperty(name = "创建时间")
	private Date createDate;

	@SchemaProperty(name = "更新者")
	private Long updater;

	@SchemaProperty(name = "更新者")
	private String updaterName;

	@SchemaProperty(name = "更新时间")
	private Date updateDate;

	@SchemaProperty(name = "合体ID")
	private Long contractId;

	@SchemaProperty(name = "合同编号")
	private String contractNumber;

	@SchemaProperty(name = "签约日期")
	private Date signedDate;

	@SchemaProperty(name = "图片信息")
	private List<FileInfoDTO> imageDataList;

	@SchemaProperty(name = "图片信息")
	private List<String> imageDataUrlList;

	@SchemaProperty(name = "图片张数")
	private int imageDataSize;

	@SchemaProperty(name = "文件信息")
	private List<FileInfoDTO> fileDataList;

	@SchemaProperty(name = "报价图片信息")
	private List<FileInfoDTO> amountImagePathList;

	@SchemaProperty(name = "报价图片信息")
	private List<String> amountImageUrlList;

	@SchemaProperty(name = "报价图片张数")
	private int amountImagePathSize;

	@SchemaProperty(name = "收款待审核项目")
	private Integer payExamineNum;

	@SchemaProperty(name = "开关回显")
	private boolean contractFlag;

}
